home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / info / gnats.info-2.z / gnats.info-2
Encoding:
GNU Info File  |  1998-05-21  |  48.5 KB  |  1,319 lines

  1. This is Info file ../../info/gnats.info, produced by Makeinfo version
  2. 1.68 from the input file gnats.texi.
  3.  
  4. START-INFO-DIR-ENTRY
  5. * Keeping Track: (gnats).        GNU Problem Report Management System
  6. END-INFO-DIR-ENTRY
  7.  
  8.    Copyright (C) 1993, 1995 Free Software Foundation, Inc.
  9.  
  10.    Permission is granted to make and distribute verbatim copies of this
  11. manual provided the copyright notice and this permission notice are
  12. preserved on all copies.
  13.  
  14.    Permission is granted to copy and distribute modified versions of
  15. this manual under the conditions for verbatim copying, provided also
  16. that the entire resulting derived work is distributed under the terms
  17. of a permission notice identical to this one.
  18.  
  19.    Permission is granted to copy and distribute translations of this
  20. manual into another language, under the above conditions for modified
  21. versions.
  22.  
  23. 
  24. File: gnats.info,  Node: edit-pr in Emacs,  Next: edit-pr from the shell,  Up: edit-pr
  25.  
  26. Using `edit-pr' from within Emacs
  27. ---------------------------------
  28.  
  29.    Call `edit-pr' from within Emacs with `M-x edit-pr'(1).  When
  30. `edit-pr' prompts you for a PR identification number, type the number
  31. of the PR you wish to edit.
  32.  
  33.    If the PR is locked, Emacs announces the login name of the person who
  34. has locked the file.  If not, `M-x edit-pr' locks the PR, loads it into
  35. a buffer named `*edit-pr*', and places the cursor in the `>Number:'
  36. field.  (*Do not change this field*.)
  37.  
  38.    Edit the PR to reflect correct information.  Resubmit the PR to the
  39. database using `C-c C-c' (see below).
  40.  
  41.    The easiest way to edit a PR from Emacs is to use the special key
  42. bindings provided.  These are:
  43.  
  44. `C-c C-c'
  45. `M-x gnats-submit-pr'
  46.      Saves and resubmits the PR currently being edited.  Do this when
  47.      you finish editing the PR; if you simply kill the buffer, your
  48.      changes are lost.
  49.  
  50. `C-x C-s'
  51. `M-x save-buffer'
  52.      Saves the current buffer tp a file.  You are prompted for a
  53.      filename.  This is not a special key binding, but at one point in
  54.      the history of GNATS it was used to resubmit the PR (i.e., it was
  55.      bound to `M-x gnats-submit-pr').  `C-x C-s' now simply saves a
  56.      copy of the PR.  This command *does not* resubmit the PR to the
  57.      database.  Use `C-c C-c' to resubmit the PR.
  58.  
  59. `C-x k'
  60. `M-x gnats:kill-buffer (*use this only with Emacs 18*)'
  61. `M-x kill-buffer'
  62.      Kills the current buffer (destroying all changes) and unlocks the
  63.      current PR.  Use this to back out of a change without affecting the
  64.      database.
  65.  
  66. `C-c C-u'
  67. `M-x unlock-pr'
  68.      Unlocks a PR that you have locked.  Use this if you have a locked
  69.      PR from a failed editing session.  You are prompted for the
  70.      GNATS-ID of a PR to unlock.
  71.  
  72. `C-c C-q'
  73.  
  74. `M-x unlock-buffer'
  75.      Removes the lock on the current PR, allowing others to edit it.
  76.      The buffer remains active and non-writeable.  To relock a PR,
  77.      simply type `e' in the buffer containing the Problem Report.
  78.  
  79. `C-c C-e'
  80. `M-x edit-pr'
  81.      Runs `edit-pr' in a new buffer.
  82.  
  83. `C-c C-f'
  84. `M-x change-field'
  85.      Changes the field under the cursor.  `edit-pr' prompts you for a
  86.      new value.  If you use
  87.  
  88.           C-u C-c C-f  *or*
  89.           C-u M-x change-field
  90.  
  91.      you are prompted for a field to change.
  92.  
  93. `C-c C-a'
  94. `M-x gnats-mail-reply'
  95.      Sends mail to the originator of this PR, using the address in the
  96.      `From:' field of the mail header.  The `Subject', `To:', and `Cc:'
  97.      fields are constructed from the Problem Report currently being
  98.      edited.  Edit the message, and use `C-c C-c' to send it.
  99.  
  100. `C-c RET'
  101. `C-c C-m'
  102. `M-x gnats-mail-other-window'
  103.      Splits the current window, and starts a mail message.  The
  104.      `Subject:' field is constructed from the Problem Report currently
  105.      being edited.  Edit the message, and use `C-c C-c' to send it.
  106.  
  107. `C-c C-r'
  108. `M-x gnats-responsible-change-from-to'
  109.      Changes the `>Responsible:' field.  `edit-pr' prompts you for the
  110.      new responsible person, and for a message describing the reason for
  111.      the change.  When you type `C-c C-c' to resubmit the PR, the
  112.      cursor is placed in a mail buffer containing a copy of the change.
  113.      You can then edit this buffer and type `C-c C-c' again to send the
  114.      mail.
  115.  
  116. `C-c C-s'
  117. `M-x gnats-state-change-from-to'
  118.      Changes the `>State:' field.  `edit-pr' prompts you for the new
  119.      state, and for a message describing the reason for the change.
  120.      When you type `C-c C-c' to resubmit the PR, the cursor is placed in
  121.      a mail buffer containing a copy of the change.  You can then edit
  122.      this buffer and type `C-c C-c' again to send the mail.
  123.  
  124. `C-c C-t'
  125. `M-x category-change-from-to'
  126.      Changes the `>Category:' field of the PR.  `edit-pr' prompts you
  127.      for the new category.  `edit-pr' also prompts you with the question
  128.  
  129.           Update the >Responsible field?
  130.  
  131.      Type `y' to change the value of the `>Responsible:' field to the
  132.      name of the party responsible for the new category.  Type `n' to
  133.      keep the current value of `>Responsible:'.
  134.  
  135. `M-C-b'
  136. `M-x gnats-backward-field'
  137.      Moves the cursor to the beginning of the value of the current
  138.      field.
  139.  
  140. `M-C-f'
  141. `M-x gnats-forward-field'
  142.      Moves the cursor to the end of the value of the current field.
  143.  
  144. `M-p'
  145. `M-x gnats-previous-field'
  146.      Moves the cursor back one field to the beginning of the value of
  147.      the previous field.
  148.  
  149. `M-n'
  150. `M-x gnats-next-field'
  151.      Moves the cursor forward one field to the beginning of the value
  152.      of the next field.
  153.  
  154.    ---------- Footnotes ----------
  155.  
  156.    (1) If typing `M-x edit-pr' doesn't work, see your system
  157. administrator for help loading `edit-pr' into Emacs.
  158.  
  159. 
  160. File: gnats.info,  Node: edit-pr from the shell,  Prev: edit-pr in Emacs,  Up: edit-pr
  161.  
  162. Invoking `edit-pr' from the shell
  163. ---------------------------------
  164.  
  165.    The usage for the `edit-pr' shell script is:
  166.  
  167.      edit-pr GNATS-ID [ -V | --version ] [ -h | --help ]
  168.  
  169. You must first determine which PR you want to edit.  The options are:
  170.  
  171. `-V *or* --version'
  172.      Prints the version number for `edit-pr'.
  173.  
  174. `-h *or* --help'
  175.      Prints the usage for `edit-pr'.
  176.  
  177.    `edit-pr' calls the editor specified in your environment variable
  178. `EDITOR' on a temporary copy of that PR.  (If you don't have the
  179. variable `EDITOR' defined in your environment, the default editor `vi'
  180. is used.)
  181.  
  182.    Edit the PR, changing any relevant fields or adding to existing
  183. information.  When you exit the editor, `edit-pr' prompts you on
  184. standard input for a reason if you've changed either the
  185. `>Responsible:' field or the `>State:' field.  `edit-pr' tracks the
  186. information you provide when changing either of these two fields, along
  187. with the change that occurred, your name, and the time of change in the
  188. `>Audit-Trail:' field.
  189.  
  190. 
  191. File: gnats.info,  Node: query-pr,  Next: view-pr,  Prev: edit-pr,  Up: Invoking the tools
  192.  
  193. Querying the database
  194. =====================
  195.  
  196.    Obtain information from the database by using the program
  197. `query-pr'. `query-pr' uses search parameters you provide to find
  198. matching Problem Reports in the database.  You can invoke `query-pr'
  199. from the shell or from within Emacs.  `query-pr' uses the same
  200. arguments whether it is invoked from the shell or from Emacs.
  201.  
  202.    All arguments and options to `query-pr' are optional.  If you do not
  203. specify a PR identification number and do not give any search
  204. parameters, `query-pr' displays the entire database.  All arguments are
  205. considered identification numbers of Problem Reports to display.  Any
  206. number of options can be given (though some make no sense when
  207. specified on the same command line); all are connected with a logical
  208. `AND'.
  209.  
  210. * Menu:
  211.  
  212. * Invoking query-pr::
  213. * Example queries::
  214. * Reporting::
  215.  
  216. 
  217. File: gnats.info,  Node: Invoking query-pr,  Next: Example queries,  Up: query-pr
  218.  
  219. Invoking `query-pr'
  220. -------------------
  221.  
  222.    From the shell, simply type `query-pr', followed by any search
  223. parameters you wish to exercise.  From Emacs, type `M-x query-pr'.
  224. `query-pr' prompts you for search parameters in the minibuffer.
  225.  
  226.    `query-pr' can also be accessed by electronic mail, if your version
  227. of GNATS is configured for this.  To use this feature, simply send mail
  228. to the address `query-pr@YOUR-SITE' with command line arguments or
  229. options in the `Subject:' line of the mail header.  GNATS replies to
  230. your mail with the results of your query.  The default settings for the
  231. `query-pr' mail server are
  232.  
  233.      --restricted --state="open|analyzed|feedback|suspended"
  234.  
  235. To override the `--state' parameter, specify `--state=STATE' in the
  236. `Subject:' line of the mail header.  You can not query on confidential
  237. Problem Reports by mail.
  238.  
  239.    The usage for `query-pr' is:
  240.  
  241.      query-pr [ GNATS-ID ]
  242.               [ -c CATEGORY | --category=CATEGORY ]
  243.               [ -s STATE | --state=STATE ]
  244.               [ -r RESPONSIBLE | --responsible=RESPONSIBLE ]
  245.               [ -S SUBMITTER | --submitter=SUBMITTER ]
  246.               [ -C [ YES | NO ] | --confidential=[ YES | NO ] ]
  247.               [ -e SEVERITY | --severity=SEVERITY ]
  248.               [ -p PRIORITY | --priority=PRIORITY ]
  249.               [ -O ORIGINATOR | --originator=ORIGINATOR ]
  250.               [ -L CLASS | --class=CLASS ]
  251.               [ -t TEXT | --text=TEXT ]
  252.               [ -m TEXT | --multitext=TEXT ]
  253.               [ -R | --restricted ]
  254.               [ -F | --full ] [ -q | --summary ] [ -i | --sql ]
  255.               [ -P | --print-path ]
  256.               [ -d DIRECTORY | --directory=DIRECTORY ]
  257.               [ -o OUTFILE | --output=OUTFILE ]
  258.               [ -V | --version ] [ -h | --help ]
  259.  
  260.    If you run `query-pr' from within Emacs, you can use
  261.  
  262.      C-x `     *or*       M-x next-error
  263.  
  264. to scroll through Problem Reports one by one after the search is
  265. finished.
  266.  
  267. Search criteria
  268. ---------------
  269.  
  270.    The following arguments and options specify search criteria.  The
  271. lack of a criterion indicates that all values for the corresponding
  272. field are valid for the search.  Regular expressions may be used as
  273. arguments to search criteria options; see *Note Querying using regular
  274. expressions: Regexps.
  275.  
  276.    Using an argument to `query-pr' specifies the most stringent search
  277. criteria, that of a single PR.
  278.  
  279. `GNATS-ID'
  280.      The identification number of the PR you wish to view, as shown in
  281.      the `>Number:' field.  Any number of GNATS-ID arguments may be
  282.      given.
  283.  
  284. `-c CATEGORY'
  285. `--category=CATEGORY'
  286.      Search only for PRs with a `>Category:' value of CATEGORY.  For a
  287.      list of valid categories, type `send-pr -L' from the shell.
  288.  
  289. `-s STATE'
  290. `--state=STATE'
  291.      Search only for PRs with a `>State:' value of STATE.  STATE must
  292.      be one of: `open', `analyzed', `feedback', `closed', or
  293.      `suspended'.
  294.  
  295.      This field may be searched using regular expressions.  *Note
  296.      Querying using regular expressions: Regexps.  Also see *Note
  297.      Example queries: Example queries.
  298.  
  299. `-r RESPONSIBLE'
  300. `--responsible=RESPONSIBLE'
  301.      Search only for PRs with a `>Responsible:' value of RESPONSIBLE.
  302.  
  303. `-S SUBMITTER'
  304. `--submitter=SUBMITTER'
  305.      Search only for PRs with a `>Submitter:' value of SUBMITTER.
  306.  
  307. `-C [YES | NO]'
  308. `--confidential=[YES | NO]'
  309.      Search only for PRs with a `>Confidential:' value of either YES or
  310.      NO.  If this option is not given, all PRs are eligible for the
  311.      search regardless of their confidentiality.
  312.  
  313. `-e SEVERITY'
  314. `--severity=SEVERITY'
  315.      Search only for PRs with a `>Severity:' value of SEVERITY.
  316.      SEVERITY must be one of: `critical', `serious', or `non-critical'.
  317.  
  318. `-p PRIORITY'
  319. `--priority=PRIORITY'
  320.      Search only for PRs with a `>Priority:' value of PRIORITY.
  321.      PRIORITY must be one of: `high', `medium', or `low'.
  322.  
  323. `-O ORIGINATOR'
  324. `--originator=ORIGINATOR'
  325.      Search only for PRs with an `>Originator:' value of ORIGINATOR.
  326.  
  327.      Since this option does not reference the index, queries using it
  328.      finish much faster if you also use another search criterion that
  329.      *is* part of the index (*note The `index' file: index file.).
  330.  
  331. `-L CLASS'
  332. `--class=CLASS'
  333.      Search only for PRs with a `>Class:' value of CLASS.  Since this
  334.      option does not reference the index, queries using it finish much
  335.      faster if you also use another search criterion that *is* part of
  336.      the index (*note The `index' file: index file.).
  337.  
  338. `-t TEXT'
  339. `--text=TEXT'
  340.      Search the TEXT fields in the database for the regular expression
  341.      TEXT.  TEXT fields include the following (the `>' and `:' Problem
  342.      Report fieldname delimiters have been removed for the sake of
  343.      brevity and readability):
  344.  
  345.           Submitter-Id   Originator     Synopsis
  346.           Category       Release        Responsible
  347.           Arrival-Date
  348.  
  349.      *Note Querying using regular expressions: Regexps.
  350.  
  351.      Queries using this option can be slow.  Since this option does not
  352.      reference the index, queries using it finish much faster if you
  353.      also use another search criterion that *is* part of the index
  354.      (*note The `index' file: index file.).
  355.  
  356. `-m TEXT'
  357.  
  358. `--multitext=TEXT'
  359.      Search the MULTITEXT fields in the database for the regular
  360.      expression TEXT.  MULTITEXT fields include the following (again,
  361.      the fieldname delimiters `>' and `:' have been omitted):
  362.  
  363.           Organization   Environment    Description
  364.           How-To-Repeat  Fix            Audit-Trail
  365.           Unformatted
  366.  
  367.      *Note Querying using regular expressions: Regexps.
  368.  
  369.      Queries using this option can be very slow.  Since this option
  370.      does not reference the index, queries using it finish much faster
  371.      if you also use another search criterion that *is* part of the
  372.      index (*note The `index' file: index file.).
  373.  
  374. `-R'
  375. `--restricted'
  376.      Omit from the search path PRs whose `>Confidential:' fields contain
  377.      the value `yes'.  This is equivalent to
  378.  
  379.           query-pr --confidential=no
  380.  
  381.      and also disallows the use of the options `--outfile=OUTFILE' and
  382.      `--directory=DIRECTORY'.  This option is used with the
  383.      `mail-query' tool.
  384.  
  385. `-x'
  386. `--skip-closed'
  387.      Omit closed PRs from the search path.  This option is ignored if
  388.      you also use `-s STATE' or `--state=STATE'.
  389.  
  390. Output format
  391. -------------
  392.  
  393.    Use the following options to select the format in which the Problem
  394. Report is printed.  Use only one of these options for a given search.
  395. If you do not specify one of these options, a header(1) for the Problem
  396. Reports meeting the search criteria is printed.
  397.  
  398. `-F'
  399. `--full'
  400.      Prints all fields in the Problem Report rather than just summary
  401.      information.
  402.  
  403. `-q'
  404. `--summary'
  405.      Print a short single-line summary of PR information, delimited by
  406.      whitespace, including the following fields in order (the `>' and
  407.      `:' Problem Report fieldname delimiters have been removed for the
  408.      sake of brevity and readability):
  409.  
  410.           Number         Responsible    Category
  411.           State          Severity       Priority
  412.           Submitter-Id   Synopsis
  413.  
  414. `-i'
  415. `--sql'
  416.      Prints information on a single line with fields delimited by pipes
  417.      (`|'), which can be uploaded into a relational database.  When you
  418.      use this option, `query-pr' outputs ENUMERATED fields numerically
  419.      rather than textually; see *Note Reporting on groups of Problem
  420.      Reports: Reporting.
  421.  
  422.      `query-pr -i' outputs the following fields, in order (again, the
  423.      fieldname delimiters `>' and `:' have been omitted):
  424.  
  425.           Number         Category       Synopsis
  426.           Confidential   Severity       Priority
  427.           Responsible    State          Class
  428.           Submitter-Id   Arrival-Date   Originator
  429.           Release
  430.  
  431.      When you use the `-i' option, `query-pr' outputs the ENUMERATED
  432.      fields in the database, namely `>Severity:', `>Priority:',
  433.      `>State:', and `>Class:', as numbers rather than text.  *Note
  434.      Reporting on groups of Problem Reports: Reporting, for details.
  435.  
  436. Other options
  437. -------------
  438.  
  439.    `query-pr' also accepts the following options:
  440.  
  441. `-P'
  442. `--print-path'
  443.      Prints the path which `query-pr' used to find the current PR.  A
  444.      line of the form `DIRECTORY/NUMBER:NUMBER' is printed before each
  445.      PR.  This option is automatically used from within Emacs to
  446.      facilitate scrolling through groups of PRs with `C-x `'.
  447.  
  448. `-d DIRECTORY'
  449. `--directory=DIRECTORY'
  450.      Changes the search directory to DIRECTORY from GNATS_ROOT.
  451.  
  452. `-o OUTFILE'
  453. `--output=OUTFILE'
  454.      Prints all output to OUTFILE rather than to the standard output.
  455.  
  456. `-V'
  457. `--version'
  458.      Prints the version number for `query-pr'.
  459.  
  460. `-h'
  461. `--help'
  462.      Prints the usage for `query-pr'.
  463.  
  464.    ---------- Footnotes ----------
  465.  
  466.    (1) A "header" includes the mail header fields as well as the
  467. following fields: `>Number:', `>Category:', `>Synopsis:',
  468. `>Confidential:', `>Severity:', `>Priority:', `>Responsible:',
  469. `>State:', `>Class:', `>Submitter-Id:', `>Originator:', `>Release:', and
  470. `>Arrival-Date:'.  For suggestions on using alternate output formats in
  471. database reports, see *Note Reporting: Reporting.
  472.  
  473. 
  474. File: gnats.info,  Node: Example queries,  Next: Reporting,  Prev: Invoking query-pr,  Up: query-pr
  475.  
  476. Example queries
  477. ---------------
  478.  
  479.    The following simple query:
  480.  
  481.      query-pr --category=rats --responsible=fred --state=analyzed
  482.  
  483. yields all PRs in the database which contain the field values:
  484.  
  485.      >Category:     rats         *and*
  486.      >Responsible:  fred         *and*
  487.      >State:        analyzed
  488.  
  489.    The following query:
  490.  
  491.      query-pr --state="o|a"
  492.  
  493. yields all PRs in the database whose `>State:' values match either
  494. `open' or `analyzed' (*note Querying using regular expressions:
  495. Regexps..  This search is useful as a daily report that lists all
  496. Problem Reports which require attention.
  497.  
  498.    The report can be further altered using an alternate output format
  499. for `query-pr'; see *Note Reporting on groups of Problem Reports:
  500. Reporting.  A more fine-grained report may be obtained by specifying
  501. more search parameters, e.g. narrowing the search down by `>Submitter:'
  502. or by `>Responsible:'.
  503.  
  504.    The following query:
  505.  
  506.      query-pr --text="The quick.*brown fox"
  507.  
  508. yields all PRs whose TEXT fields contain the text `The quick' followed
  509. by `brown fox' within the same field.  *Note Querying using regular
  510. expressions: Regexps.
  511.  
  512. 
  513. File: gnats.info,  Node: Reporting,  Prev: Example queries,  Up: query-pr
  514.  
  515. Reporting on groups of Problem Reports
  516. --------------------------------------
  517.  
  518.    There currently exists no separate reporting mechanism in GNATS from
  519. `query-pr'.  However, the `-q' and `-i' options to `query-pr' allow for
  520. easy reporting.
  521.  
  522.    For example, a report on the current open Problem Reports in the
  523. database can be obtained using `awk' with
  524.  
  525.      query-pr -q | awk '{print $3 "/" $1 ": " $4}'
  526.  
  527. which yields a list of the form
  528.  
  529.      CATEGORY/GNATS-ID: STATE
  530.      *etc...*
  531.  
  532. For example:
  533.  
  534.      sprockets/123: open
  535.      widgets/456: analyzed
  536.      *etc...*
  537.  
  538. The `-i' option to `query-pr' yields output delimited by pipes (`|').
  539. This results in the following:
  540.  
  541.      GNATS-ID|CATEGORY|SYNOPSIS|CONFIDENTIAL|\
  542.      SEVERITY|PRIORITY|RESPONSIBLE|STATE|CLASS|\
  543.      SUBMITTER-ID|ARRIVAL-DATE|ORIGINATOR|RELEASE
  544.  
  545.    A report on Problem Reports in the database that are currently
  546. `open' or `analyzed' might resemble the following (the example is split
  547. into two lines in order to fit onto the page; it is intended to be
  548. typed on one command line):
  549.  
  550.      query-pr -i -s "o|a" | \
  551.        awk -F\| '{print $1 "  " $2 "  " $8 "  " $3}'
  552.  
  553. which yields
  554.  
  555.      GNATS-ID  CATEGORY  STATE  RESPONSIBLE SYNOPSIS
  556.      *etc...*
  557.  
  558. For example:
  559.  
  560.      123  sprockets  1  fred    The sprockets program gives bad output
  561.      456  widgets    2  barney  The foo widget doesn't work with 'bar'
  562.      789  widgets    1  wilma   The 'baz' widget is broken
  563.  
  564. When you use the `-i' option, `query-pr' outputs the ENUMERATED fields
  565. in the database, namely `>Severity:', `>Priority:', `>State:', and
  566. `>Class:', as numbers rather than text.  In the example above, a
  567. `>State:' value of `1' means `open', `2' means `analyzed', and so forth.
  568. ENUMERATED fields are output according to the following paradigm:
  569.  
  570.          >Severity:                   >Priority:
  571.      critical        1             high            1
  572.      serious         2             medium          2
  573.      non-critical    3             low             3
  574.      
  575.           >State:                      >Class:
  576.      open            1             sw-bug          1
  577.      analyzed        2             doc-bug         2
  578.      suspended       3             support         3
  579.      feedback        4             change-request  4
  580.      closed          5             mistaken        5
  581.                                    duplicate       6
  582.  
  583.    This makes sorting on these values easy, when combined with `sort'.
  584. It is left as an exercise for the reader to figure out how to do this.
  585.  
  586. 
  587. File: gnats.info,  Node: view-pr,  Prev: query-pr,  Up: Invoking the tools
  588.  
  589. Viewing individual Problem Reports
  590. ==================================
  591.  
  592.    Use `view-pr' from within Emacs to view individual Problem Reports.
  593. Invoke `view-pr' with
  594.  
  595.      M-x view-pr
  596.  
  597.    You are prompted to enter a Problem Report identification number
  598. (GNATS-ID).  You can also invoke `view-pr' with
  599.  
  600.      C-u GNATS-ID M-x view-pr
  601.  
  602.    `view-pr' allows you to view GNATS-ID.  This is identical to using
  603.  
  604.      C-u GNATS-ID M-x query-pr
  605.  
  606.    except that you may choose to edit the PR at any time by pressing
  607. `e'.
  608.  
  609. 
  610. File: gnats.info,  Node: Management,  Next: Installation,  Prev: Invoking the tools,  Up: Top
  611.  
  612. GNATS Administration
  613. ********************
  614.  
  615.    In daily usage, GNATS is self-maintaining.  However, there are
  616. various administrative duties which need to be performed periodically:
  617.  
  618. *emptying the `pending' directory*
  619.      If a Problem Report arrives with a `>Category:' value that is
  620.      unrecognized by the `categories' file, or if that field is missing,
  621.      GNATS places the PR in the `pending' directory (*note Where the
  622.      tools and utilities reside: Locations.).  GNATS has no way of
  623.      knowing which subdirectory the PR should be filed under.  GNATS
  624.      sends a notice to the `gnats-admin' and to the party responsible
  625.      for that submitter (as listed in the `submitters' file) when this
  626.      occurs.
  627.  
  628.      To file these PRs, simply use `edit-pr' to repair the problematic
  629.      fields in each file in the `pending' directory.  Be sure to change
  630.      the `>Category:' field of the PR from `pending' to an appropriate
  631.      category.  In many cases the culprit is simply a typographical
  632.      error, although it may be necessary sometimes to contact the
  633.      submitter of the PR to decipher her or his intentions.
  634.  
  635.      Should you run out of disk space, there may be an empty PR in the
  636.      `pending' directory.  In that case, look in the file
  637.      `GNATS_ROOT/gnats-adm/bug.log', which should still contain the
  638.      full message that was submitted.
  639.  
  640. *adding new categories*
  641.      To add a new category, simply insert a new line in the
  642.      `categories' file and then run the program `mkcat'.
  643.  
  644.      *Note*: this causes all category lists for `send-pr' (except the
  645.      one on the local machine) to become outdated.  Copy the new list on
  646.      to every machine on your network that has `send-pr' installed, and
  647.      make sure you advise remote submitters that the category list has
  648.      changed.  *Note Adding a problem category: mkcat.  Also *Note The
  649.      `categories' file: categories.
  650.  
  651. *removing categories*
  652.      To remove a category, you need to make sure the relevant
  653.      subdirectory is empty (in other words, make sure no PRs exist for
  654.      the category you wish to remove).  You can then remove the
  655.      category listing from the `categories' file, and invoke
  656.  
  657.           rmcat CATEGORY...
  658.  
  659.      to remove CATEGORY (any number of categories may be specified on
  660.      the command line to `rmcat', so long as they abide by the above
  661.      constraints).
  662.  
  663.      *Note*: this causes all category lists for `send-pr' (except the
  664.      one on the local machine) to become outdated.  Copy the new list on
  665.      to every machine on your network that has `send-pr' installed, and
  666.      make sure you advise remote submitters that the category list has
  667.      changed.  *Note Removing a problem category: rmcat.  Also *Note
  668.      The `categories' file: categories.
  669.  
  670. *adding and removing maintainers*
  671.      Edit the `responsible' file to add a new maintainer or to remove an
  672.      existing maintainer.  *Note The `responsible' file: responsible.
  673.  
  674. *building a distribution of `send-pr'*
  675.      You can build a distribution of `send-pr' which contains valid
  676.      information for your site by invoking the command `mkdist'.  *Note
  677.      Configuring `send-pr' for the outside world: mkdist.  You can then
  678.      distribute your customized `send-pr' to your customers, friends,
  679.      relatives, etc., so that they can submit Problem Reports to your
  680.      database.
  681.  
  682. *building a new index*
  683.      If your index becomes corrupted, or if you wish to generate a new
  684.      one for some reason, use the program `gen-index' (*note
  685.      Regenerating the index: gen-index.).
  686.  
  687. *pruning log files*
  688.      Log files often grow to unfathomable proportions.  As with
  689.      gardening, it is best to prune these as they grow, lest they take
  690.      over your disk and leave you with no room to gather more Problem
  691.      Reports.  If you keep log files, be sure to keep an eye on them.
  692.      (*Note Setting up mail aliases: Aliases.)
  693.  
  694. *BACKING UP YOUR DATA*
  695.      Any database is only useful if its data remains uncorrupted and
  696.      safe.  Performing periodic backups ensures that problems like disk
  697.      crashes and data corruption are reversible.
  698.  
  699.    *Note Where GNATS lives: Locations.
  700.  
  701. * Menu:
  702.  
  703. * Networked management::  Managing GNATS over a network
  704. * Local configuration::   Changing your local configuration
  705. * Admin files::           Administrative data files
  706. * Admin utils::           Administrative utilities
  707. * Internal utils::        Internal utilities
  708.  
  709. 
  710. File: gnats.info,  Node: Networked management,  Next: Local configuration,  Up: Management
  711.  
  712. Managing GNATS over a network
  713. =============================
  714.  
  715.    If you have installed the GNATS user tools on machines around your
  716. local network, there are a few things you need to remember.
  717.  
  718.    `mkcat' and `rmcat' do not update the categories list for other
  719. machines on your network which have `send-pr' installed, unless those
  720. machines share PREFIX with the host machine).  To update these lists,
  721. copy the `send-pr' categories list to each of the other hosts.  This
  722. categories list is `PREFIX/lib/gnats/SITE', where SITE is the name tag
  723. for your local site, as specified in the `config' file as `GNATS_SITE'
  724. (*note The `config' file: config.).
  725.  
  726.    It is also important to note that only your local `send-pr' has
  727. access to this new information; any copies of `send-pr' which you have
  728. distributed to outside submitters now have outdated category lists.
  729. You must either contact your submitters and instruct them to update
  730. their copy of the categories list, which they installed in
  731. `PREFIX/lib/gnats/SUPPORT-SITE' from the distribution you provided, or
  732. you must build another distribution of `send-pr' with this new
  733. information and redistribute it.
  734.  
  735.    If you need to use GNATS utilities, like `query-pr' and `edit-pr',
  736. on other systems besides the one where GNATS itself resides, *note
  737. Installing the user tools: Installing tools..
  738.  
  739. 
  740. File: gnats.info,  Node: Local configuration,  Next: Admin files,  Prev: Networked management,  Up: Management
  741.  
  742. Changing your local configuration
  743. =================================
  744.  
  745.    *Note Where GNATS lives: Locations.
  746.  
  747.    Your local configuration is determined by the data files in the
  748. directory `GNATS_ROOT/gnats-adm'.  These can be altered at any time by
  749. editing the pertinent file.
  750.  
  751. `config'
  752.      Variables which control certain behavior.  *Note The `config'
  753.      file: config.  Behaviors you can change here include
  754.  
  755.         * The address where your site receives Problem Reports.
  756.  
  757.         * The address of the GNATS administrator.
  758.  
  759.         * The nametag for your Support Site (your organization, company,
  760.           group, etc.).
  761.  
  762.         * The nametag for your local Submitter Site.
  763.  
  764.         * The default release for your site.
  765.  
  766.         * The default value for the `>Organization:' field (this value
  767.           appears as the default when you run `send-pr').
  768.  
  769.         * Whether or not to remind maintainers if a requisite time
  770.           period has passed before they change the state of a Problem
  771.           Report to `analyzed'.  (Also see *Note The `submitters' file:
  772.           submitters, and *Note Timely Reminders: at-pr.
  773.  
  774.         * Whether or not to send an automatic acknowledgement to the
  775.           originator of a problem report when the GNATS first receives
  776.           the PR.
  777.  
  778.         * The value GNATS assigns to PRs which come in with missing or
  779.           unknown values for the `>Submitter-Id:' field.
  780.  
  781.         * Whether or not GNATS should retain `Received:' mail headers
  782.           from incoming mail.
  783.  
  784.         * Whether or not GNATS is in a mode for debugging.
  785.  
  786.         * The values which define business hours.
  787.  
  788. `categories'
  789.      The list of categories that GNATS accepts as valid for the
  790.      `>Category:' field, and the maintainers responsible for each
  791.      category.  Update this file whenever you have a new category, or
  792.      whenever a category is no longer valid.  You must also update this
  793.      file whenever responsiblility for a category changes, or if a
  794.      maintainer is no longer valid.  *Note The `categories' file:
  795.      categories.  Also see *Note Adding a new problem category: mkcat,
  796.      and *Note Removing a problem category: rmcat.
  797.  
  798. `responsible'
  799.      The list of maintainers.  Update this file whenever you have a new
  800.      maintainer, or whenever a maintainer is no longer valid.  *Note
  801.      The `responsible' file: responsible.
  802.  
  803. `submitters'
  804.      The list of Submitter Sites from whom GNATS accepts Problem
  805.      Reports.  This file is mandatory, although the feature it provides
  806.      is not; see *Note The `submitters' file: submitters.
  807.  
  808. * Menu:
  809.  
  810. * default behavior::
  811. * config::          The `config' file
  812. * categories::      The `categories' file
  813. * responsible::     The `responsible' file
  814. * submitters::      The `submitters' file
  815.  
  816. 
  817. File: gnats.info,  Node: default behavior,  Next: config,  Up: Local configuration
  818.  
  819. Default behavior
  820. ----------------
  821.  
  822.    The default behavior for GNATS is as follows:
  823.  
  824.    * The address where your site receives Problem Reports is `bugs' (a
  825.      local address).
  826.  
  827.    * The address of the GNATS administrator is `gnats-admin' (a local
  828.      address).
  829.  
  830.    * The nametag for your Support Site (your organization, company,
  831.      group, etc.) is the second-to-last field in your domain name.
  832.  
  833.    * The nametag for your local Submitter Site is the nametag for your
  834.      Support Site.
  835.  
  836.    * The default release for your site is `unknown-1.0'.
  837.  
  838.    * The default value for the `>Organization:' field (this value
  839.      appears as the default when you run `send-pr') is the nametag for
  840.      your Support Site.
  841.  
  842.    * GNATS reminds maintainers if a requisite time period has passed
  843.      before they change the state of a Problem Report to `analyzed'.
  844.  
  845.    * An automatic acknowledgement is sent to the originator of a problem
  846.      report when the GNATS first receives the PR.
  847.  
  848.    * The value GNATS assigns to the `>Submitter-Id:' field in PRs which
  849.      arrive with missing or unknown values for that field is `unknown'.
  850.  
  851.    * `Received...' mail headers are retained.
  852.  
  853.    * GNATS is not in a debugging mode.
  854.  
  855.    * "business hours" are defined as 8:00am to 5:00pm, Monday through
  856.      Friday.
  857.  
  858. 
  859. File: gnats.info,  Node: config,  Next: categories,  Prev: default behavior,  Up: Local configuration
  860.  
  861. The `config' file
  862. -----------------
  863.  
  864.    Much of the behavior GNATS exhibits depends on the values of fields
  865. in the file `GNATS_ROOT/gnats-adm/config'.  The `config' file contains
  866. a list of variables (using Bourne-shell syntax) which control the
  867. following behavior.  These values can be changed at any time; the new
  868. values take effect for all subsequent iterations of the tools.
  869.  
  870. `GNATS_ADDR="ADDRESS"'
  871.      The address where your site receives Problem Reports.  This
  872.      address is aliased in the file `/etc/aliases' so that it directs
  873.      incoming mail into `queue-pr' (*note Installing the utilities:
  874.      Installing utils.).
  875.  
  876.      The default is `bugs' (a local address).
  877.  
  878. `GNATS_ADMIN="ADDRESS"'
  879.      The address of the GNATS administrator.  Normally this is set to
  880.      `gnats-admin', which is an alias in `/etc/aliases' that points
  881.      toward the person responsible for administrating GNATS.  *Note
  882.      Installing the utilities: Installing utils.
  883.  
  884.      The default is `gnats-admin' (a local address).
  885.  
  886. `GNATS_SITE="SITE"'
  887.      The nametag for your Support Site (your organization, company,
  888.      group, etc.).  This nametag should also appear in the `submitters'
  889.      file, so that users at your site can submit Problem Reports
  890.      locally.
  891.  
  892.      SITE is also used as the name of the file containing a valid
  893.      category list for your site.  This file is installed locally as
  894.      `PREFIX/lib/gnats/SITE'.  *Warning:* if you change this variable
  895.      after GNATS is installed, you must also change the name of this
  896.      file, as well as the name of the alias for your local submitters
  897.      (*note Setting up mail aliases: Aliases.).
  898.  
  899.      The default is the second-to-last field in your domain name.  For
  900.      example, if your domain name is `unleaded.truckstop.org', your
  901.      default SITE is `truckstop'.
  902.  
  903. `SUBMITTER="SUBMITTER-ID"'
  904.      The nametag for your local Submitter Site (this value appears as
  905.      the default value for `>Submitter-Id' when you run `send-pr').
  906.      Even though you are a Support Site, if you submit Problem Reports
  907.      to your own organization you become a Submitter Site.  The value
  908.      SUBMITTER-ID is the default value for the `>Submitter-Id:' field
  909.      that your maintainers see when they submit Problem Reports locally.
  910.  
  911.      The default is the value of `GNATS_SITE'.
  912.  
  913. `DEFAULT_RELEASE="RELEASE"'
  914.      The default release for your site (this value appears as the
  915.      default value for `>Release:' when you run `send-pr').
  916.  
  917.      The default is `unknown-1.0'.
  918.  
  919. `DEFAULT_ORGANIZATION="TEXT"'
  920.      The default value for the `>Organization:' field (this value
  921.      appears as the default when you run `send-pr').
  922.  
  923.      The default is the value of `GNATS_SITE'.
  924.  
  925. `NOTIFY=BOOLEAN'
  926.      Determines whether or not to remind maintainers if a requisite time
  927.      period has passed before they change the state of a Problem Report
  928.      to `analyzed'.  This feature uses the program `at-pr'; see *Note
  929.      Timely Reminders: at-pr.
  930.  
  931.      This requisite time is determined for each submitter individually;
  932.      see *Note The `submitters' file: submitters.  The time is measured
  933.      in "business hours", which by default are 8:00am to 5:00pm, Monday
  934.      through Friday.  Business hours can be redefined by changing the
  935.      variables `BDAY_START', `BDAY_END', `BWEEK_START', and `BWEEK_END'
  936.      in the `config' file (see below).
  937.  
  938.      If BOOLEAN is `1', this feature is active.  If BOOLEAN is `0', the
  939.      feature is turned off.  The default value for `NOTIFY' is `1'.
  940.  
  941. `ACKNOWLEDGE=BOOLEAN'
  942.      Determines whether or not to send an automatic acknowledgement to
  943.      the originator of a problem report when the GNATS first receives
  944.      the PR.
  945.  
  946.      If BOOLEAN is `1', this feature is active.  If BOOLEAN is `0', the
  947.      feature is turned off.  The default for `ACKNOWLEDGE' is `1'.
  948.  
  949.      The acknowledgment is of the form:
  950.  
  951.           To: YOUR-ADDRESS
  952.           From: gnats
  953.           Subject: Re: CATEGORY/GNATS-ID:SYNOPSIS
  954.           In-Reply-To: Your message of DATE
  955.           
  956.           Thank you very much for your problem report.
  957.           It has the internal identification: CATEGORY/GNATS-ID
  958.           The individual assigned to look at your bug is:
  959.                RESPONSIBLE
  960.           
  961.           Category:     CATEGORY OF THE PR
  962.           Responsible:  RESPONSIBLE
  963.           Synopsis:     SYNOPSIS FROM SUBMITTED PR
  964.           Arrival-Date: ARRIVAL DATE
  965.  
  966. `DEFAULT_SUBMITTER="submitter-id"'
  967.      The value GNATS assigns to PRs which come in with missing or
  968.      unknown values for the `>Submitter-Id:' field.  This value must
  969.      also appear in the `submitters' file; see *Note The `submitters'
  970.      file: submitters.
  971.  
  972.      To disable the feature of GNATS which tracks the `>Submitter-Id:',
  973.      simply alter the `submitters' file to only contain the
  974.      SUBMITTER-ID value which appears in `DEFAULT_SUBMITTER', and and
  975.      instruct your submitters to ignore the field.
  976.  
  977.      The default value for `DEFAULT_SUBMITTER' is `unknown'.
  978.  
  979. `KEEP_RECEIVED_HEADERS=BOOLEAN'
  980.      Determines whether or not GNATS should retain the `Received:' mail
  981.      headers from incoming mail.  These headers often take up a lot of
  982.      space, and they are seldom used.
  983.  
  984.      If BOOLEAN is `1', this feature is active.  If BOOLEAN is `0', the
  985.      feature is turned off.  The default value for
  986.      `KEEP_RECEIVED_HEADERS' is `1'.
  987.  
  988. `DEBUG_MODE=BOOLEAN'
  989.      Determines whether or not GNATS is operating in a mode for
  990.      debugging.  When BOOLEAN is `1', GNATS fowards all mail to the
  991.      GNATS administrator, `gnats-admin'.
  992.  
  993. `BDAY_START=INTEGER'
  994. `BDAY_END=INTEGER'
  995. `BWEEK_START=INTEGER'
  996. `BWEEK_END=INTEGER'
  997.      The definition of "business hours".  These values are only used if
  998.      `NOTIFY' is set to `1' in the `config' file (see above).
  999.  
  1000.      By default, business hours are 8:00am to 5:00pm Monday through
  1001.      Friday, local time.
  1002.  
  1003.     `BDAY_START=INTEGER'
  1004.           Defines the hour of the day when business hours begin.
  1005.           INTEGER values must fall between `0' (midnight) and `23'
  1006.           (11:00pm).  The default is `8' (8:00am).
  1007.  
  1008.     `BDAY_END=INTEGER'
  1009.           Defines the hour of the day when business hours end.  INTEGER
  1010.           values must fall between `0' (midnight) and `23' (11:00pm).
  1011.           The default is `17' (5:00pm).
  1012.  
  1013.     `BWEEK_START=INTEGER'
  1014.           Defines the beginning day of the business week.  INTEGER
  1015.           values must fall between `0' (Sunday) and `6' (Saturday).  The
  1016.           default is `1' (Monday).
  1017.  
  1018.     `BWEEK_END=INTEGER'
  1019.           Defines the ending day of the business week.  INTEGER values
  1020.           must fall between `0' (Sunday) and `6' (Saturday).  The
  1021.           default is `5' (Friday).
  1022.  
  1023. 
  1024. File: gnats.info,  Node: categories,  Next: responsible,  Prev: config,  Up: Local configuration
  1025.  
  1026. The `categories' file
  1027. ---------------------
  1028.  
  1029.    The `categories' file contains a list of problem categories,
  1030. specific to your site, which GNATS tracks.  This file also matches
  1031. responsible people with these categories.  You must edit this file
  1032. initially, creating valid categories and then running `mkcat' to create
  1033. the corresponding subdirectories of `GNATS_ROOT' and update the valid
  1034. categories list for `send-pr'.  For instructions on running `mkcat',
  1035. see *Note Adding a problem category: mkcat.
  1036.  
  1037.    To create a new category, log in as GNATS, add a line to this file,
  1038. and run `mkcat'.  Lines beginning with `#' are ignored.
  1039.  
  1040.    A line in the `categories' file consists of four fields delimited by
  1041. colons, as follows:
  1042.  
  1043.      CATEGORY:DESCRIPTION:RESPONSIBLE:NOTIFY
  1044.  
  1045. CATEGORY
  1046.      A unique category name, made up of text characters.  This name
  1047.      cannot contain spaces or any of the following characters:
  1048.  
  1049.           ! $ & * ( ) { } [ ] ` ' " ; : < > ~
  1050.  
  1051.      Ideally, category names should not contain commas or begin with
  1052.      periods.  Each line has a corresponding subdirectory in the main
  1053.      GNATS directory (GNATS_ROOT).
  1054.  
  1055. DESCRIPTION
  1056.      A terse textual description of the category.
  1057.  
  1058. RESPONSIBLE
  1059.      The name tag of the party responsible for this category of
  1060.      problems, as listed in the `responsible' file (*note The
  1061.      `responsible' file: responsible.).
  1062.  
  1063. NOTIFY
  1064.      One or more other parties which should be notified when a Problem
  1065.      Report with this category arrives, such as a project manager,
  1066.      other members of the same project, other interested parties, or
  1067.      even log files.  These should be separated with commas.
  1068.  
  1069. A good strategy for configuring this file is to have a different
  1070. category for each product your organization supports or wishes to track
  1071. information for, or perhaps with sub-categories within each category.
  1072. For instance, if you wish to track documentation problems in a variety
  1073. of areas, you could have entries such as
  1074.  
  1075.      doc:General Doc Questions:myboss:me,barney
  1076.      doc-rock:Doc for ROCK program:me:myboss
  1077.      doc-stone:Docs for STONE utils:barney:fred
  1078.      doc-local:in-house documentation:me:doc-local-log
  1079.  
  1080.    In the above example, the nametags `myboss', `me', `fred', and
  1081. `barney' must be defined in the `responsible' file (*note The
  1082. `responsible' file: responsible.).
  1083.  
  1084.    Problem Reports with a category of `doc' are sent to the local mail
  1085. address (or alias) `myboss', and also sent to the addresses `me' and
  1086. `barney'.  PRs with a category of `doc-rock' are sent to the local
  1087. addresses `me' and `myboss' only, while PRs with the category
  1088. `doc-stone' are sent to `fred' as well as to `barney'.  PRs with a
  1089. category of `doc-local' are sent only to `me', and are also filed in
  1090. `doc-local-log' (in this case, an alias should be set up in
  1091. `/etc/aliases' to reflect a location for the log file, such as
  1092. `doc-local-log: /users/me/local-log').
  1093.  
  1094.    Whenever you add a new category, be sure to run `mkcat' to create a
  1095. subdirectory for it and update the local categories list.
  1096.  
  1097.    Only one category must be present for GNATS to function:
  1098.  
  1099.      pending:Category for faulty PRs: gnats-admin:
  1100.  
  1101.    The `pending' directory is created automatically when you run
  1102. `make install' (*note Configuring and compiling the software: Configure
  1103. and make.).
  1104.  
  1105. 
  1106. File: gnats.info,  Node: responsible,  Next: submitters,  Prev: categories,  Up: Local configuration
  1107.  
  1108. The `responsible' file
  1109. ----------------------
  1110.  
  1111.    This file contains a list of the responsible parties.  Lines
  1112. beginning with `#' are ignored.  Each entry contains three fields,
  1113. separated by colons:
  1114.  
  1115.      RESPONSIBLE:FULL-NAME:MAIL-ADDRESS
  1116.  
  1117. RESPONSIBLE
  1118.      A name-tag description of the party in question, such as her or
  1119.      his user name, or the name of the group.  This name is listed in
  1120.      the PR in the `>Responsible:' field.
  1121.  
  1122. FULL-NAME
  1123.      The full name of the party ("Charlotte Bronte"; "Compiler Group").
  1124.  
  1125. MAIL-ADDRESS
  1126.      The full, valid mail address of the party.  This field is only
  1127.      necessary if the responsible party has no local mail address or
  1128.      alias.
  1129.  
  1130. A sample `responsible' listing might be:
  1131.  
  1132.      ren:Ren Hoek:
  1133.      stimpy:Stimpson J. Cat:stimpy@lederhosen.org
  1134.  
  1135.    Here, `ren' is a local user.  `stimpy' is remote, so his full
  1136. address must be specified.
  1137.  
  1138.    The following entry must be present for GNATS to function:
  1139.  
  1140.      gnats-admin: GNATS administrator:
  1141.  
  1142. (`gnats-admin' is a mail alias, so for this purpose `gnats-admin' is a
  1143. local address.)
  1144.  
  1145. 
  1146. File: gnats.info,  Node: submitters,  Prev: responsible,  Up: Local configuration
  1147.  
  1148. The `submitters' file
  1149. ---------------------
  1150.  
  1151.    This is a database of sites which submit bugs to your support site.
  1152. It contains six fields delineated by colons.  Lines beginning with `#'
  1153. will be ignored.
  1154.  
  1155.    Entries are of the format:
  1156.  
  1157.      SUBMITTER-ID:NAME:TYPE:RESP-TIME:CONTACT:NOTIFY
  1158.  
  1159. SUBMITTER-ID
  1160.      A unique identifier for a specific site or other entity who submits
  1161.      Problem Reports.
  1162.  
  1163. NAME
  1164.      A textual description of this entity.
  1165.  
  1166. TYPE
  1167.      Optional description for the type of relationship this submitter
  1168.      to your support site.  This could indicate a contract type, a
  1169.      level of expertise, etc., or it can remain blank.
  1170.  
  1171. RESP-TIME
  1172.      Optional quoted response time, in "business hours".  GNATS is
  1173.      capable of reminding responsible parties when Problem Reports
  1174.      marked with a `>Severity' value of `critical', or those with a
  1175.      `>Severity' of `serious' and a `>Priority' value of `high', are
  1176.      neglected for a certain period.  This argument defines that
  1177.      response period for each SUBMITTER-ID.  Business hours are defined
  1178.      by default as 8:00am to 5:00pm, Monday through Friday.  For
  1179.      example, three business days would be equal to 24 business hours.
  1180.  
  1181.      This function is active if the `NOTIFY' field is defined as `1' in
  1182.      the `config' file (*note Changing your local configuration: Local
  1183.      configuration.).  If `NOTIFY' is `0', this field is ignored.  For
  1184.      information on `at-pr', the program which sends out this reminder,
  1185.      see *Note Timely Reminders: at-pr.
  1186.  
  1187. CONTACT
  1188.      The name tag of the main "contact" at the Support Site for this
  1189.      submitter.  This contact should be in the `responsible' file
  1190.      (*note The `responsible' file: responsible.).  Incoming bugs from
  1191.      SUBMITTER are sent to this contact.  Optionally, this field can be
  1192.      left blank.
  1193.  
  1194. NOTIFY
  1195.      Any other parties who should receive copies of Problem Reports
  1196.      sent in by SUBMITTER.
  1197.  
  1198. A few example entries in the `submitters' file:
  1199.  
  1200.      univ-hell: University of Hades:eternal:3:beelzebub:lucifer
  1201.      tta: Telephones and Telegraphs of America:support:720:dave:
  1202.  
  1203. In this example, when a PR comes in from the University of Hades (who
  1204. has an eternal contract), it should have `univ-hell' in its
  1205. `Submitter-Id' field.  This Problem Report goes to `beelzebub' (who
  1206. should be in the `responsible' file), and if it is not analyzed within
  1207. three business hours a reminder message is sent.  `lucifer' also
  1208. receives a copy of the bug, and a copy of the reminder message as well
  1209. (if it is sent).  When Telephones and Telegraphs of America utilizes
  1210. their support contract and submits a bug, a copy is sent only to
  1211. `dave', who has 720 business hours to return an analysis before a
  1212. reminder is sent.
  1213.  
  1214.    To disable the feature of GNATS which tracks the `>Submitter-Id:',
  1215. simply alter the `submitters' file to only contain the SUBMITTER-ID
  1216. value which appears as the `DEFAULT_SUBMITTER' value in the `config'
  1217. file (*note The `config' file: config.), and instruct your submitters
  1218. to ignore the field.
  1219.  
  1220. 
  1221. File: gnats.info,  Node: Admin files,  Next: Admin utils,  Prev: Local configuration,  Up: Management
  1222.  
  1223. Administrative data files
  1224. =========================
  1225.  
  1226.    The following files are located in `GNATS_ROOT/gnats-adm', where
  1227. GNATS_ROOT is the resident directory of GNATS.  These files are
  1228. maintained by GNATS; you should never touch them.
  1229.  
  1230. * Menu:
  1231.  
  1232. * index file::      The `index' file
  1233. * current file::    The `current' file
  1234.  
  1235. 
  1236. File: gnats.info,  Node: index file,  Next: current file,  Up: Admin files
  1237.  
  1238. The `index' file
  1239. ----------------
  1240.  
  1241.    The index is used to accelerate searches on the database by
  1242. `query-pr' and `edit-pr'.  This file is not created until the first PR
  1243. comes in.  It is then kept up to date by GNATS; you should never touch
  1244. this file.
  1245.  
  1246.    Any searches on subjects contained in the index are much faster than
  1247. searches which depend on data not in the index.  The index contains
  1248. single-line entries for the following fields, in order, separated by
  1249. colons (`:') except for `>Category:' and `>Number:', which are
  1250. separated by a slash (`/') (the `>' and `:' Problem Report fieldname
  1251. delimiters have been removed for the sake of brevity and readability)::
  1252.  
  1253.      Category       Number         Submitter-Id
  1254.      Responsible    State          Confidential
  1255.      Severity       Priority
  1256.  
  1257.    To see an example index, run `gen-index' without any options (*note
  1258. Regenerating the index: gen-index.).
  1259.  
  1260. 
  1261. File: gnats.info,  Node: current file,  Prev: index file,  Up: Admin files
  1262.  
  1263. The `current' file
  1264. ------------------
  1265.  
  1266.    This file contains the last serial number assigned to an incoming PR.
  1267. It is used internally by GNATS; you need never touch this file.
  1268.  
  1269. 
  1270. File: gnats.info,  Node: Admin utils,  Next: Internal utils,  Prev: Admin files,  Up: Management
  1271.  
  1272. Administrative utilities
  1273. ========================
  1274.  
  1275.    These tools are used by the GNATS administrator as part of the
  1276. periodic maintenance and configuration of GNATS.  *Note GNATS
  1277. Administration: Management.
  1278.  
  1279. * Menu:
  1280.  
  1281. * mkcat::       Adding a problem category
  1282. * rmcat::       Removing a problem category
  1283. * gen-index::   Regenerating the index
  1284. * mkdist::      Configuring send-pr for the outside world
  1285.  
  1286. 
  1287. File: gnats.info,  Node: mkcat,  Next: rmcat,  Up: Admin utils
  1288.  
  1289. Adding a problem category
  1290. -------------------------
  1291.  
  1292.    To add new categories to the database:
  1293.  
  1294.   1. Add a line to the `categories' file under `GNATS_ROOT/gnats-adm'
  1295.      for each new category.  *Note The `categories' file: categories.
  1296.  
  1297.   2. Run `mkcat'.  `mkcat' creates a directory under GNATS_ROOT for any
  1298.      new categories which appear in the `categories' file.  `mkcat'
  1299.      also recreates the list of valid categories for both your locally
  1300.      installed `send-pr' and for the `send-pr' distribution template in
  1301.      `PREFIX/lib/gnats/dist' (*note Where GNATS lives: Locations..
  1302.  
  1303.    *Note:* `mkcat' does not update the categories list for other
  1304. machines on your network which have `send-pr' installed (unless the two
  1305. machines share the directory PREFIX).  *Note Managing GNATS over a
  1306. network: Networked management.
  1307.  
  1308.    It is also important to note that only your local `send-pr' has
  1309. access to this new information; any copies of `send-pr' which you have
  1310. distributed to outside submitters now have outdated category lists.
  1311. You must either contact your submitters and instruct them to update
  1312. their copy of the categories list, which they installed in
  1313. `PREFIX/lib/gnats/SUPPORT-SITE' (*Note:* the value for PREFIX may be
  1314. different from yours) from the distribution you provided, or you must
  1315. build another distribution of `send-pr' with this new information and
  1316. redistribute it (*note Configuring `send-pr' for the outside world:
  1317. mkdist.).
  1318.  
  1319.